#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	int poolthreads = 0,erro = 0,i,j;
	char *modo_operacao,parametro = '\0',*porta = "8080\0";
	
	if(argc >= 3 && argc <= 5)
		for(i = 1; i < argc; i++)
			switch (argv[i][0])
			{
				case '-':
					parametro = argv[i][1];											
					break;
				case 'h':
					modo_operacao = argv[i];
					if(argc == 5 && strcmp(modo_operacao,"http"))
						erro = 1;
					break;
				default:
					if(argv[i - 1][0] == '-' && argv[i - 1][1] == 't')
					{
						poolthreads = 0;						
						for(j = 0; j < strlen(argv[i]) && !erro; j++)	/* transformação da string contida em argv[i] em número */
							if((argv[i][j] - 48) <= 9 && (argv[i][j] - 48) >= 0 && !erro)
								poolthreads = poolthreads * 10 + argv[i][j] - 48;
							else
								erro = 1;
					}
					else
					{													
						for(j = 0; j < strlen(argv[i]) && !erro; j++)	/* transformação da string contida em argv[i] em número */
							if(argv[i][j] > '9' || argv[i][j] < '0')								
								erro = 1;
						porta = argv[i];
					}
			}
	else
		erro = 1;
						
	if((!strcmp(modo_operacao,"http") && (parametro != 't' || !poolthreads)) ||
	(!strcmp(modo_operacao,"httpd") && parametro != 'f'))
		erro = 1;

	if(erro)
	{
		printf("Uso: ./%s <modo operação(httpd/http)> <parametro(-f/-t)> <tamanho poolthreads( /N)> <porta(default=8080)>\n\n",argv[0]);
       	return 0;	
	}
		
	printf("modo de operação = %s\nparametro = -%c\n",modo_operacao,parametro);
	if(parametro == 't')
		printf("tamanho pool = %i\n",poolthreads);
	printf("porta = %s\n\n",porta);
	
	return 0;
}
